package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.SysRolePost;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


/**
 * 角色和职责关联信息Service接口
 *
 * @author youde
 * @date 2022-11-16
 */
public interface ISysRolePostService {
    /**
     * 查询角色和职责关联信息
     *
     * @param rolePostId 角色和职责关联信息主键
     * @return 角色和职责关联信息
     */
    public SysRolePost selectSysRolePostByRolePostId(String rolePostId);

    /**
     * 查询角色和职责关联信息列表
     *
     * @param sysRolePost 角色和职责关联信息
     * @return 角色和职责关联信息集合
     */
    public Page<SysRolePost> selectSysRolePostList(SysRolePost sysRolePost, Pageable pageinfo);


    /**
     * 查询角色和职责关联信息列表
     *
     * @param sysRolePost 角色和职责关联信息
     * @return 角色和职责关联信息集合
     */
    public List<SysRolePost> selectSysRolePostList(SysRolePost sysRolePost);

    /**
     * 新增角色和职责关联信息
     *
     * @param sysRolePost 角色和职责关联信息
     * @return 结果
     */
    public SysRolePost[] insertSysRolePost(SysRolePost[] sysRolePost);

    /**
     * 修改角色和职责关联信息
     *
     * @param sysRolePost 角色和职责关联信息
     * @return 结果
     */
    public SysRolePost updateSysRolePost(SysRolePost sysRolePost);

    /**
     * 批量删除角色和职责关联信息
     *
     * @param rolePostIds 角色和职责关联信息id
     * @return 结果
     */
    public void deleteSysRolePostByIds(String[] rolePostIds);

    /**
     * 删除角色和职责关联信息信息
     *
     * @param roleId 角色id
     * @return 结果
     */
    public void deleteSysRolePostByRoleId(String roleId);

    /**
     * 根据角色id查询关联的岗位信息
     *
     * @param roleId
     * @return
     */
    public List<SysRolePost> findByRoleId(String roleId);

    /** 根据岗位id查询关联的角色信息
     * @param postId
     * @return
     */
    public List<SysRolePost> findByPostId(String postId);

    /** 根据岗位id查询关联的角色编码、角色名称、所属公司等信息
     * @param postId
     * @return
     */
    public List<SysRolePost> findRoleInfoByPostId(String postId);
}